home *** CD-ROM | disk | FTP | other *** search
- {-----------------------------------------------------------------------------}
- { In diesem Modul sind sämtliche Hilfsroutinen zur einfachen GEM-Verwaltung }
- { enthalten. }
- { }
- { (c) WURMSOFTWARE im Mai 1987 }
- {-----------------------------------------------------------------------------}
-
- {======================== AES - Calls =================================}
-
- PROCEDURE AES_Call ( op : integer ;
- VAR int_in : Int_In_Parms ;
- VAR int_out : Int_Out_Parms ;
- VAR addr_in : Addr_In_Parms ;
- VAR addr_out : Addr_Out_Parms ) ; EXTERNAL ;
-
-
- {------ AES-Calls : Objc_Draw ------------------------------------------------}
-
- PROCEDURE Objc_Draw (VAR Ptr : Dialog_Ptr) ;
-
- BEGIN
- int_in[0] := 0 ;
- int_in[1] := 4 ;
- int_in[2] := 0 ;
- int_in[3] := 0 ;
- int_in[4] := 639 ;
- int_in[5] := 399 ;
- addr_in[0] := Ptr ;
- AES_Call (42, int_in, int_out, addr_in, addr_out) ;
- END ;
-
-
- {------ AES-Calls : Mouse_State ----------------------------------------------}
-
- PROCEDURE Mouse_State (VAR x, y, butt, key : integer) ;
-
- BEGIN
- AES_Call (79, int_in, int_out, addr_in, addr_out) ;
- x := int_out[1] ;
- y := int_out[2] ;
- butt := int_out[3] ;
- key := int_out[4] ;
- END ;
-
-
- {========================= Dialog - Verwaltung ==============================}
-
- {---- Test_Button : Testet, ob Button gesetzt und setzt Flag -----------------}
-
- PROCEDURE Test_Button ( zeiger : Dialog_Ptr ; item : integer ;
- VAR flag : boolean ) ;
-
- BEGIN
- IF Obj_State (zeiger, item) & Selected <> 0 THEN
- flag := true
- ELSE
- flag := false ;
- END ;
-
-
- {---- Zahl_Einlesen : Holt Zahl von Edit_Feld --------------------------------}
-
- FUNCTION Zahl_Einlesen ( zeiger : Dialog_Ptr ; item : integer ;
- VAR erg : real ) : boolean ;
-
- VAR lauf : integer ;
- wert_str : str255 ;
- falsch : boolean ;
-
- BEGIN
- Get_DEdit (zeiger, item, wert_str) ;
- FOR lauf := 1 TO LENGTH (wert_str) DO
- IF NOT (wert_str[lauf] IN ['0'..'9','e','E','.','+','-']) THEN
- Zahl_Einlesen := false
- ELSE
- Zahl_Einlesen := Zahl_Auswerten (wert_str, erg) ;
- END ;
-
-
- {---- Do_Abbruch -------------------------------------------------------------}
-
- PROCEDURE Do_Abbruch ;
-
- BEGIN
- button := Do_Alert ('[2][ Wirklich abbrechen ? ][ Ja | Nein ]', 1) ;
- IF button = 1 THEN
- BEGIN
- Close_Window (window) ;
- Delete_Window (window) ;
- Erase_Menu (menu_zei) ;
- Delete_Menu (menu_zei) ;
- Delete_Dialog (info_zei) ;
- Delete_Dialog (lauf_zei) ;
- Delete_Dialog (fktein_zei) ;
- Delete_Dialog (werte_zei) ;
- Delete_Dialog (koein_zei) ;
- Delete_Dialog (darst_zei) ;
- Delete_Dialog (drucker_zei) ;
- Delete_Dialog (help_zei) ;
- Delete_Dialog (warten_zei) ;
- Delete_Dialog (w1_zei) ;
- Delete_Dialog (w2_zei) ;
- Delete_Dialog (ausgabe_zei) ;
- Free_Resource ;
- Exit_Gem ;
- Halt ;
- END ;
- END ;
-
-
- {---- Do_Show_Wurminfo -------------------------------------------------------}
-
- PROCEDURE Do_Show_Wurminfo ;
-
- BEGIN
- pushed := Do_Dialog (w1_zei, 0) ;
- Obj_SetState (w1_zei, pushed, normal, true) ;
- pushed := Do_Dialog (w2_zei, 0) ;
- Obj_SetState (w2_zei, pushed, normal, true) ;
- End_Dialog (w1_zei) ;
- End_Dialog (w2_zei) ;
- END ;
-
-
- {---- Do_Show_Info -----------------------------------------------------------}
-
- PROCEDURE Do_Show_Info ;
-
- BEGIN
- pushed := Do_Dialog (info_zei, 0) ;
- Obj_SetState (info_zei, pushed, normal, true) ;
- IF pushed = swurm THEN Do_Show_Wurminfo ;
- End_Dialog (info_zei) ;
- END ;
-
-
- {---- Do_Show_Help -----------------------------------------------------------}
-
- PROCEDURE Do_Show_Help ;
-
- BEGIN
- pushed := Do_Dialog (help_zei, 0) ;
- Obj_SetState (help_zei, pushed, normal, true) ;
- End_Dialog (help_zei) ;
- END ;
-
-
- {---- Str_Wandel : Wandelt Integerzahlen in Strings um -----------------------}
-
- PROCEDURE Str_Wandel (zahl : integer ; VAR zeichenkette : str255) ;
-
- VAR
- e, z, h, help : integer ;
-
- BEGIN
- help := zahl ;
- h := TRUNC (help / 100 + 1E-6) ;
- help := help - h * 100 ;
- z := TRUNC (help / 10 + 1E-6) ;
- e := help - z * 10 ;
- zeichenkette := CONCAT (CHR(h+48),CHR(z+48),CHR(e+48)) ;
- help := TRUNC (1 + ABS ((LN (zahl+0.5) / LN (10)))) ;
- DELETE (zeichenkette, 1, 3 - help) ;
- END ;
-
-
- {---- Do_Aktualisieren : Setzt neuen Wert in die Dialogbox -------------------}
-
- PROCEDURE Do_Aktualisieren (dialog : Dialog_Ptr ; feld, wert : integer) ;
-
- VAR zeile : str255 ;
-
- BEGIN
- Str_Wandel (wert, zeile) ;
- Set_DText (dialog, feld, zeile, System_Font, TE_Center) ;
- Obj_SetState (dialog, feld, disabled, false) ;
- Obj_SetState (dialog, feld, normal, true) ;
- END ;
-
-
- {====================== Window - Verwaltung ================================}
-
- {====================== Sonstiges ================================}
-
-
- {---- Do_Screen_Aktualisieren : Setzt Bildschirminhalt neu -------------------}
-
- PROCEDURE Do_Screen_Aktualisieren ;
-
- BEGIN
- Hide_Mouse ;
- {$P-}
- bild_ptr^ := bild ;
- {$P=}
- Show_Mouse ;
- END ;
-
- {---- Do_Merken : Setzt aktuellen Bildschirm in ARRAY ------------------------}
-
- PROCEDURE Do_Merken ;
-
- BEGIN
- Hide_Mouse ;
- {$P-}
- bild := bild_ptr^ ;
- {$P=}
- Show_Mouse ;
- END ;
-
-
-